Module 3 - Analyse statistique avec R - Séance 2

DUBii 2019

Leslie REGAD

2019-02-03

Etude de cas : le myélome multiple (MM)

Question statistique

Est-ce le dosage molécule déoxypyridinoline (pyr) est un bon marqueur pour détecter la maladie ?

\(\quad\)

\(\rightarrow\) est-ce que le taux de pyr des patients malades est plus grand que celui des individus sains ?

\(\quad\)

Population = ensemble d’individus ayant des caractéristiques qui leur sont propres

Experience aléatoire / variable aléatoire

Variables aléatoires (VA)

Cas d'étude

Question biologique

Est-ce que le taux de pyr des patients malades est plus grand que celui des individus sains ?

\(\quad\)

Cas d'étude : présentation des données

dataMyelom <- read.table("data/myelom.txt", sep="\t", header=T)
dim(dataMyelom)
[1] 218  38
colnames(dataMyelom)
 [1] "numero"   "diagn"    "stade"    "sstade"   "statut"   "sexe"     "adiag"    "typeig"   "kaplam"   "pyr"      "bp1"      "caryo"    "nbchrom"  "hb"       "gb"       "plq"      "plasmo"   "creat"    "ctx"      "ntx"      "fract"    "calcemie" "pic"      "albumine" "beta2"    "ldh"     
[27] "crp"      "ploid"    "tt1"      "etatdn"   "agedg"    "deldgpr"  "agepr"    "ageprc"   "deldgdn"  "delprdn"  "deldn"    "normchr" 
str(dataMyelom[,c("diagn", "pyr")])
'data.frame':   218 obs. of  2 variables:
 $ diagn: int  1 1 1 1 1 1 1 1 1 1 ...
 $ pyr  : num  5.48 8.93 6.1 13.29 5.35 ...

Description des deux échantiilons

table(dataMyelom[,"diagn"])

  0   1 
 40 178 
ind.sain <- which(dataMyelom[,"diagn"]==0)
pyr0 <- dataMyelom[ind.sain,"pyr"]
ind.malade <- which(dataMyelom[,"diagn"]==1)
pyr1 <- dataMyelom[ind.malade,"pyr"]

Description des deux échantillons

par(mar=c(3,3,1,1))
boxplot(pyr~diagn, data=dataMyelom)

Estimation de paramètres

by(dataMyelom[,"pyr"], dataMyelom["diagn"], mean)
diagn: 0
[1] 5.6985
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
diagn: 1
[1] 7.241742

Estimation de paramètres

by(dataMyelom[,"pyr"], dataMyelom["diagn"], sd)
diagn: 0
[1] 2.527974
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
diagn: 1
[1] 4.089944

Quelle confiance donner aux résultats ?

nb.simul <- 1000 ; val.mean <- rep(NA, length = nb.simul)
for(i in 1: nb.simul){
  ech <- rnorm(n = 100, mean=14.3, sd = sqrt(24.6)) ;   val.mean[i] <- mean(ech)
}
hist(val.mean,xlab="estimateur de mu", main=paste(nb.simul,"simulations", sep=" "),breaks=20)

Estimation d'un paramètre : Intervalle de confiance (IC)

\(\quad\)

\[ p(m_{inf} < \mu < m_{sup}) = 1- \alpha \]

IC de la moyenne : 2 cas

\(\quad\)

IC du taux de pyr

alpha <- 0.5
borneInf.0 <- mean(pyr0) - qt(1-alpha/2, df=(length(pyr0)-1)) * sqrt(var(pyr0)/length(pyr0)) 
borneSup.0 <- mean(pyr0) + qt(1-alpha/2, df=(length(pyr0)-1)) * sqrt(var(pyr0)/length(pyr0)) 
round(c(borneInf.0, borneSup.0),2)
[1] 5.43 5.97
borneInf.1 <- mean(pyr1) - qt(1-alpha/2, df=(length(pyr1)-1)) * sqrt(var(pyr1)/length(pyr1)) 
borneSup.1 <- mean(pyr1) + qt(1-alpha/2, df=(length(pyr1)-1)) * sqrt(var(pyr1)/length(pyr1)) 
round(c(borneInf.1, borneSup.1),2)
[1] 7.03 7.45

Cas d'étude : Introductions aux tests statistiques

\(\quad\)

Déroulement d'un test statistique - 1

  1. Point de départ : une question biologique : Est-ce que le taux moyen de pyr des patients malades est plus grands que celui des patients sains ?
    \(\rightarrow\) définition de variable aléatoire et de ses paramètres

    • X = "taux de pyr" : \(E(X)= \mu\) et \(V(X) = \sigma^2\)
    • X1 = "taux de pyr chez les patients sains" : \(E(X_1) = \mu_1\) et \(V(X_1) = \sigma_1^2\)
    • X2 = "taux de pyr chez les patients malades" : \(E(X_2) = \mu_2\) et \(V(X_2) = \sigma_2^2\)
  2. Définit deux hypothèses sur un des paramètres de la VA
    • hypothèse nulle (H0) : égalité des paramètres : \(\mu_1 = \mu_2 = \mu\)
    • hypothèse alternative (H0) : égalité des paramètres : \(\mu_1 < \mu_2\)
  3. Définit une expérimentation pour extraire des données relatives à la question posée :
    • Création de deux échantillons :
    • échantillon 1 composé de \(n_1\) patients sains
    • échantillon é composé de \(n_2\) patients malade
    • Mesure le taux de pyr de chaque patient
  4. Les données sont considérées comme la réalisation de la variable aléatoire décrite dans la population

Déroulement d'un test statistique - 1

\(\quad\)

Réaliser le test va consister à choisir une des deux hypothèses (H0 ou H1) en se basant sur les données des échantillons

\(\quad\)
\(\rightarrow\) Est-ce que les données des échantillons (\(m_1\) et \(m_2\)) sont compatibles avec H0 ?

Est-ce que les données sont compatibles avec H0 ?

  1. Définir un critère statistique \(S\) dont la loi sous H0 est connue
    \(S = M_1 - M_2\) avec \(M\)=moyenne de \(X\) dans 1 échantillon

  2. Calculer \(s_{obs}\) = valeur de \(S\) calculée sur les échantillons : \(s_{obs} = m_1 - m_2\)

Est-ce que les données sont compatibles avec H0 ?

  1. Définir un critère statistique \(S\) dont la loi sous H0 est connue
    \(S = M_1 - M_2\) avec \(M\)=moyenne de \(X\) dans 1 échantillon

  2. Calculer \(s_{obs}\) = valeur de \(S\) calculée sur les échantillons : \(s_{obs} = m_1 - m_2\)

  1. Calculer la p-value = \(p(S>s_{obs})\)

Est-ce que les données sont compatibles avec H0 ?

  1. Définir un critère statistique \(S\) dont la loi sous H0 est connue
    \(S = M_1 - M_2\) avec \(M\)=moyenne de \(X\) dans 1 échantillon

  2. Calculer \(s_{obs}\) = valeur de \(S\) calculée sur les échantillons : \(s_{obs} = m_1 - m_2\)

  1. Calculer la p-value = \(p(S>s_{obs})\)

Interprétation de la p-value : \(p(S>s_{obs})\)

\(\quad\)

les erreurs

Deux erreurs possibles quand on conclut au test :

Diminuer l'erreur de type II / Augmenter la puissance du test

  1. Augmenter la taille d'effet
  2. Diminuer la variabilité des données (variance des données)
  3. Augmenter la taille de l'échantillon

Comparaison du taux de pyr chez les patients malades et contrôles

Est-ce que le taux de pyr des patients malades est plus grand que celui des individus sains ?
t.test(pyr~diagn, data=dataMyelom, var.equal=TRUE, alternative="less")

    Two Sample t-test

data:  pyr by diagn
t = -2.2878, df = 216, p-value = 0.01156
alternative hypothesis: true difference in means is less than 0
95 percent confidence interval:
      -Inf -0.428922
sample estimates:
mean in group 0 mean in group 1 
       5.698500        7.241742 

Les différents types de tests : suivant H1

H0 : \(\mu_1 = \mu_2\)

Test unilatéral : un sens dans l'effet
H1 : \(\mu_1 \geq \mu_2\)

Test bilatéral : aucun sens dans l'effet
H1 : \(\mu_1 \ne \mu_2\)

Les différents types de tests : suivant la VA